#! /usr/bin/env python

from random import randint
from random import shuffle
import math
#n vertices  y m aristas
# u
# b
# k

#defino el nombre de cada archivo
fo = open("instancias.in", "wb")
for q in range(500):
  n = randint(5,200)
  #calculo la cantidad de aristas del grafo completo
  completo = n*(n-1)*0.5
  #aristas
  t = 1000
  m = int(completo)
  #k = randint(1,t)
  u = randint(1,n) #nodo origen
  v = randint(1,n) # nodo destino
  while v == u:
    v = randint(1,n)

  lista = []
  #las lineas de las aristas
  sumaW1 = 0
  for i in range(1,n):
    for j in range(i+1,n+1):
          u1 = i
          v1 = j
          w1 = randint(1,int(t/10))
          w2 = randint(1,int(t/10))
          t1 = u1, v1, w1, w2
          lista.append(t1)
          sumaW1 += w1

  #cantidad de ejes que hay que atravesar aprox
  saltosAprox = math.copysign( 1, (u-v) ) * (u-v)
  #ajuste que hago del estima de saltos, Estimado * constante de ajuste
  C = 4

  K = int( (saltosAprox * C) * ( sumaW1/m ) )
  #print "estime un K %s de un grafo con promedio %d para distancia %s" % (K,sumaW1/m ,saltosAprox)
  shuffle(lista)

  # SI se quiere un grafo completo comentar esta linea.
  corte = int(completo * 3/4)

  del lista[corte:]
  #primer linea la cantidad de joyas n
  fo.write( str(n) + " " + str(len(lista)) + " " + str(u) + " " + str(v) + " " + str(K) + "\n")
  #fo.write( str(u1) + " " + str(v1) + " "+  str(w1)+ " " + str(w2) + "\n")
  for i in range(0,len(lista)):
      salida = lista[i]
      fo.write( str(salida[0]) + " " + str(salida[1]) + " " + str(salida[2]) + " " + str(salida[3]) + "\n")

fo.write( "0")
fo.close()
